package torres.entity;
import java.io.Serializable;
import java.util.*;
/**
 * @author Torres
 * This interface will provide a skeleton for all the
 * occupations that we will have. An occupation defines
 * an Entities Abilities and statistic multipliers.
 */
public interface Occupation extends Serializable {
	public enum Stat {
		AGILITY, STRENGTH, INTELLECT
	}
	public enum Job {
		SUMMONER, SNEAK, SMASHER
	}
	
	/**
	 * Returns the primary Stat associated the Occupation
	 * @return The primary Stat associated the Occupation
	 */
	public Stat getPrimaryStat();
	
	
	/**
	 * Return the enum representing the Occupation
	 * @return The enum representing the Occupation
	 */
	public Job getJob();
	
	/**
	 * Returns the strength multiplier.
	 * @return The strength multiplier.
	 */
	public double getStrengthMultiplier();
	
	/**
	 * Returns the agility multiplier.
	 * @return The agility multiplier.
	 */
	public double getAgilityMultiplier();
	
	/**
	 * Returns the intellect multiplier.
	 * @return The intellect multiplier.
	 */
	public double getIntellectMultiplier();
	
	/**
	 * Returns the list of abilities. 
	 * @return The list of abilities.
	 */
	public List<Ability> getAbilityList();
}
